<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">











<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Math - User Guide - Overview</title>
    <style type="text/css" media="all">
      @import url("../css/maven-base.css");
      @import url("../css/maven-theme.css");
      @import url("../css/site.css");
    </style>
    <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
      </head>
  <body class="composite">
    <div id="banner">
                    <span id="bannerLeft">
    
            Commons Math User Guide
    
            </span>
                    <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
          
  

  
    
  
  
    
              <div class="xright">      
  

  
    
  
  
    
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
           
  

  
    
  
  
    
                   <h5>User Guide</h5>
            <ul>
              
    <li class="none">
                    <a href="../userguide/index.html">Contents</a>
          </li>
              
    <li class="none">
              <strong>Overview</strong>
        </li>
              
    <li class="none">
                    <a href="../userguide/stat.html">Statistics</a>
          </li>
              
    <li class="none">
                    <a href="../userguide/random.html">Data Generation</a>
          </li>
              
    <li class="none">
                    <a href="../userguide/linear.html">Linear Algebra</a>
          </li>
              
    <li class="none">
                    <a href="../userguide/analysis.html">Numerical Analysis</a>
          </li>
              
    <li class="none">
                    <a href="../userguide/special.html">Special Functions</a>
          </li>
              
    <li class="none">
                    <a href="../userguide/utilities.html">Utilities</a>
          </li>
              
    <li class="none">
                    <a href="../userguide/complex.html">Complex Numbers</a>
          </li>
              
    <li class="none">
                    <a href="../userguide/distribution.html">Distributions</a>
          </li>
              
    <li class="none">
                    <a href="../userguide/fraction.html">Fractions</a>
          </li>
              
    <li class="none">
                    <a href="../userguide/transform.html">Transform Methods</a>
          </li>
              
    <li class="none">
                    <a href="../userguide/geometry.html">3D Geometry</a>
          </li>
              
    <li class="none">
                    <a href="../userguide/optimization.html">Optimization</a>
          </li>
              
    <li class="none">
                    <a href="../userguide/ode.html">Ordinary Differential Equations</a>
          </li>
              
    <li class="none">
                    <a href="../userguide/genetics.html">Genetic Algorithms</a>
          </li>
          </ul>
                                           <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
            <img alt="Built by Maven" src="../images/logos/maven-feather.png"></img>
          </a>
                       
  

  
    
  
  
    
        </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <div class="section"><h2><a name="Overview"></a>
Overview</h2>
<div class="section"><h3><a name="a0.1_About_The_User_Guide"></a>
0.1 About The User Guide</h3>
<p>
    This guide is intended to help programmers quickly find what they need to develop
    solutions using Commons Math.  It also provides a supplement to the javadoc API documentation,
    providing a little more explanation of the mathematical objects and functions included
    in the package.    
    </p>
</div>
<div class="section"><h3><a name="a0.2_Whats_in_commons-math"></a>
0.2 What's in commons-math</h3>
<p>
    Commons Math is made up of a small set of math/stat utilities addressing 
    programming problems like the ones in the list below.  This list is not exhaustive, 
    it's just meant to give a feel for the kinds of things that Commons Math provides.  
    <ul><li>Computing means, variances and other summary statistics for a list of numbers</li>
<li>Fitting a line to a set of data points using linear regression</li>
<li>Finding a smooth curve that passes through a collection of points (interpolation)</li>
<li>Fitting a parametric model to a set of measurements using least-squares methods</li>
<li>Solving equations involving real-valued functions (i.e. root-finding)</li>
<li>Solving systems of linear equations</li>
<li>Solving Ordinary Differential Equations</li>
<li>Minimizing multi-dimensional functions</li>
<li>Generating random numbers with more restrictions (e.g distribution, range) than what
            is possible using the JDK</li>
<li>Generating random samples and/or datasets that are &quot;like&quot; the data in an input file</li>
<li>Performing statistical significance tests</li>
<li>Miscellaneous mathematical functions such as factorials, binomial
            coefficients and &quot;special functions&quot; (e.g. gamma, beta functions)</li>
</ul>
</p>
<p>
    We are actively seeking ideas for additional components that fit into the 
    <a href="../index.html#summary">Commons Math vision</a>
 of a set of lightweight, 
    self-contained math/stat components useful for solving common programming problems.
    Suggestions for new components or enhancements to existing functionality are always welcome! 
    All feedback/suggestions for improvement should be sent to the 
    <a href="http://commons.apache.org/mail-lists.html" class="externalLink">commons-dev mailing list</a>
 with
    [math] at the beginning of the subject line.
    </p>
</div>
<div class="section"><h3><a name="a0.3_How_commons-math_is_organized"></a>
0.3 How commons-math is organized</h3>
<p>
    Commons Math is divided into fifteen subpackages, based on functionality provided.
    <ol type="1"><li><a href="stat.html">org.apache.commons.math.stat</a>
 - statistics, statistical tests</li>
<li><a href="analysis.html">org.apache.commons.math.analysis</a>
 - rootfinding, integration, interpolation, polynomials</li>
<li><a href="random.html">org.apache.commons.math.random</a>
 - random numbers, strings and data generation</li>
<li><a href="special.html">org.apache.commons.math.special</a>
 - special functions (Gamma, Beta) </li>
<li><a href="linear.html">org.apache.commons.math.linear</a>
 - matrices, solving linear systems </li>
<li><a href="utilities.html">org.apache.commons.math.util</a>
 - common math/stat functions extending java.lang.Math </li>
<li><a href="complex.html">org.apache.commons.math.complex</a>
 - complex numbers</li>
<li><a href="distribution.html">org.apache.commons.math.distribution</a>
 - probability distributions</li>
<li><a href="fraction.html">org.apache.commons.math.fraction</a>
 - rational numbers</li>
<li><a href="transform.html">org.apache.commons.math.transform</a>
 - transform methods (Fast Fourier)</li>
<li><a href="geometry.html">org.apache.commons.math.geometry</a>
 - 3D geometry (vectors and rotations)</li>
<li><a href="estimation.html">org.apache.commons.math.estimation</a>
 - parametric estimation problems</li>
<li><a href="optimization.html">org.apache.commons.math.optimization</a>
 - functions minimization</li>
<li><a href="ode.html">org.apache.commons.math.ode</a>
 - Ordinary Differential Equations integration</li>
<li><a href="genetics.html">org.apache.commons.math.genetics</a>
 - Genetic Algorithms</li>
</ol>

    Package javadocs are <a href="../apidocs/index.html">here</a>
</p>
</div>
<div class="section"><h3><a name="a0.4_How_interface_contracts_are_specified_in_commons-math_javadoc"></a>
0.4 How interface contracts are specified in commons-math javadoc</h3>
<p>
    You should always read the javadoc class and method comments carefully when using 
    Commons Math components in your programs.  The javadoc provides references to the algorithms
    that are used, usage notes about limitations, performance, etc. as well as interface contracts.
    Interface contracts are specified in terms of preconditions (what has to be true in order
    for the method to return valid results), special values returned (e.g. Double.NaN) 
    or exceptions that may be thrown if the preconditions are not met, and definitions for returned
    values/objects or state changes.</p>
<p>
     When the actual parameters provided to a method or the internal state of an object 
     make a computation meaningless, an IllegalArgumentException or IllegalStateException may
     be thrown. Exact conditions under which runtime exceptions (and any other exceptions) are 
     thrown are specified in the javadoc method comments.  In some cases, to be consistent with 
     the <a href="http://grouper.ieee.org/groups/754/" class="externalLink">IEEE 754 standard</a>
 for floating point 
     arithmetic and with java.lang.Math, Commons Math methods return Double.NaN values.
     Conditions under which Double.NaN or other special values are returned are fully specified
     in the javadoc method comments.
    </p>
</div>
<div class="section"><h3><a name="a0.5_Dependencies"></a>
0.5 Dependencies</h3>
<p>
    Commons Math requires JDK 1.5+ and has no runtime dependencies.
    </p>
</div>
<div class="section"><h3><a name="a0.6_License"></a>
0.6 License</h3>
<p>
    Commons Math is distributed under the terms of the Apache License, Version 2.0:
    <a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink"></a>
.
    </p>
<p>
    This product includes software developed by the University of Chicago, as Operator
    of Argonne National Laboratory. This corresponds to software translated from the lmder,
    lmpar and qrsolv Fortran routines from the Minpack package and distributed under the
    following disclaimer: <a href="http://www.netlib.org/minpack/disclaimer" class="externalLink"></a>
.
    </p>
<p>
    This product includes software translated from the odex Fortran routine developed by
    E. Hairer and G. Wanner and distributed under the following license:
    <a href="http://www.unige.ch/~hairer/prog/licence.txt" class="externalLink"></a>
.
    </p>
<p>
    This product includes software translated from some LAPACK Fortran routines and
    distributed under the following license: <a href="http://www.netlib.org/lapack/LICENSE" class="externalLink"></a>
.
    </p>
</div>
</div>

      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2003-2009
    
          
  

  
    
  
  
    
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
